Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Структура даних "ЧЕРГА"

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2007
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 4 з дисципліни: “Програмування” на тему: Структура даних „ЧЕРГА” Варіант 6 1. Мета роботи Навчитись працювати з структурою даних „ЧЕРГА” 2. Постановка задачі Змоделюйте чергу (або дек) згідно з завданням. Змоделюйте чергу, в якій задається початок черги і довжина черги (замість кінця черги). Чергу представити за допомогою масиву. Перепишіть модуль, що містить набір основних операцій для роботи з чергою (деком), і продемонструйте його застосування для операцій додавання і вилучення елементів в чергу (дек). Для цього задайте послідовність з N цілих чисел. Всі додатні числа послідовно заносяться в чергу (дек), кожне від’ємне число вилучає з черги (деку) один елемент (при роботі з деком, парні числа працюють з одним кінцем деку, а непарні – з іншим). Показувати всі зміни, що будуть відбуватись у черзі (деку). 4. Текст програми Клієнтська програма #include <stdio.h> #include <conio.h> #include "aqueue.h" void main() { queue Q; infotype x; Init(&Q); printf("\nEnter elements in the queue:\n"); do { printf("Enter the new element(zero - break inputing elements): "); scanf("%d",&x); if (x) { if (x > 0) Insert(&Q,x); else Remove(&Q); } Print(Q); } while (x); getch(); return; } Інтерфейс #define size 100 #define infotype int #define printfspec "%d " struct queuetype { infotype data[size]; int head , qsize; } ; typedef struct queuetype queue; void Init(queue *q); int Empty(queue q); int Full(queue q); void Insert(queue *q, infotype new_data); infotype Remove(queue *q); void Print(queue q); Реалізація функцій #include <stdio.h> #include "aqueue.h" void Init(queue *q) { (*q).qsize = 0; (*q).head = 0; return; } int Empty(queue q) { return q.qsize == q.head; } int Full(queue q) { return q.qsize == size; } void Insert(queue *q, infotype new_data) { if (Full(*q)) printf(" Error : Queue overflow ! \n"); else { (*q).data[(*q).qsize] = new_data; (*q).qsize++; } return; } infotype Remove(queue *q) { if (Empty(*q)) { printf(" Error : Queue underflow ! \n"); return 0; } else return (*q).data[(*q).head++]; } void Print(queue q) { int i; printf("Elements of queue: "); if (Empty(q)) printf("Queue is empty ! \n"); else { for (i=q.head;i<q.qsize;i++) printf(printfspec,q.data[i]); printf("\n"); } return; } 5. Результати виконання програми  6. Динаміка вмісту “Черги” 7. Висновки З допомогою цієї лабораторної роботи я навчився працювати з структурою даних “Черга ”.
Антиботан аватар за замовчуванням

06.03.2013 23:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини